home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / PRUS101.ZIP / FCRT.DOC < prev    next >
Text File  |  1994-12-19  |  65KB  |  1,437 lines

  1.                  /////////////////////\\\\\\\\\\\\\\\\\\\\\\\
  2.                        Dokumentation zur FIDO Unit FCRT
  3.                  \\\\\\\\\\\\\\\\\\\\\///////////////////////
  4.  
  5.                                  RELEASE 1.11
  6.                                  ^^^^^^^^^^^^
  7.  
  8.   =========================================================================
  9.   Autor: Orazio Czerwenka, 2:2450/540.55 @ FidoNet, St.Augustin, 12.07.1994
  10.   =========================================================================
  11.  
  12.      1. Ersatzroutinen und Erweiterungen für TPs Unit CRT
  13.      ----------------------------------------------------
  14.  
  15.         Die Unit  FCRT stellt teilweise Ersatzroutinen  für  TPs  Unit
  16.         CRT zur  Verfügung,  sowie  Routinen  zur Funktionserweiterung
  17.         dieser Standardunit und  zum direkten  Schreiben in  den Bild-
  18.         schirmspeicher.
  19.  
  20.         Dabei wurde vor allem auf eine möglichst hohe Flexibilität der
  21.         hier enthaltenen Routinen geachtet, so daß diese wohl  in  der
  22.         Regel bei direkten Schreibzugriffen auf den Bildschirm  sowohl
  23.         in verschiedenen TextModi als  auch  auf  verschiedenen  Bild-
  24.         schirmseiten und zwar sowohl auf der jeweils im Vodergrund be-
  25.         findlichen, als auch auf jeder beliebig anderen  funktionieren
  26.         müßten.
  27.  
  28.         Das war ein hartes Stück Arbeit, insbesondere weil zu langsame
  29.         Routinen gleichzeitig neu geschrieben und die hier vorliegende
  30.         Dokumentation  erstellt werden mußten, ohne die Funktionalität
  31.         der  hier  vorgestellten  Routinen  dabei  zu  verändern.  Wir
  32.         hoffen, daß uns dies  in diesem ersten  freigegebenen  Release
  33.         der Unit gelungen ist und  werden uns natürlich auch weiterhin
  34.         um die Optimierung der hier bereitgestellten Routinen bemühen,
  35.         sofern hieran allgemeines Interesse und Bereitschaft  zur Mit-
  36.         arbeit bestehen sollte.
  37.  
  38.         Hierzu ist ein FeedBack seitens der Benutzer  dieser  Routinen
  39.         jedoch unerläßlich. Um Erfahrungs-  und  Fehlerberichte  jeder
  40.         Art wird daher dringend gebeten.
  41.  
  42.         Wer  zur  Erweiterung,  Verbesserung   oder  Fehlerbereinigung
  43.         dieser und/oder anderer Unit(s) des Projektes beitragen  kann,
  44.         ist herzlich eingeladen, dies auch zu tun.
  45.  
  46.         Die  Optimierung  einzelner  Routinen  wurde  noch nicht abge-
  47.         schlossen, aber nach dem derzeitigen Stand der  Dinge,   müßte
  48.         zumindest alles problemlos laufen, wenn auch teils noch  etwas
  49.         langsamer als unbedingt nötig. ;-)
  50.  
  51.         Andererseits ist beim Gebrauch vereinzelter Routinen darauf zu
  52.         achten, daß sie bereits _zu_ schnell sind, um anders  als  nur
  53.         mit Bedacht und Vorsicht verwendet zu werden. So  eignen  sich
  54.         etwa die Routinen DISPLAY, DISPLAYAT und DISPLAYLN  nicht  zur
  55.         exzessiven Benutzung, da sie unter Umständen ein starkes Bild-
  56.         schirmflackern verursachen können, wie man es früher  nur  von
  57.         langsamen CGA-Karten kannte. Sie können jedoch bedenkenlos be-
  58.         reits zum Zeichnen auf andere, als die jeweils im  Vordergrund
  59.         befindliche, Bildschirmseiten benutzt werden.
  60.  
  61.         Es ist dringend zu beachten, daß die Variablen und typisierten
  62.         Konstanten der Unit unter keinen Umständen von seiten der  Be-
  63.         nutzer manipuliert werden sollten. Diese Variablen werden  in
  64.         der Regel über bereitgestellte Prozeduren gesteuert.
  65.         Eine Manipulation seitens des Anwenders kann zu  unvorhergese-
  66.         henen Ergebnissen führen. Die Variablen und  typisierten  Kon-
  67.         stanten der Unit wurden lediglich zu Abfragezwecken im  Inter-
  68.         face-Teil zur Verfügung gestellt.
  69.  
  70.  
  71.         Das Include File FCONDRV.INC und dessen Routinen
  72.         --------------------------------------------------------------
  73.  
  74.         Die  im  Include  File  FCONDRV.INC  enthaltenen  Routinen der
  75.         Unit FCRT entstanden ebenfalls im Zuge des PRUSSG Projekts.
  76.         Hier ging es hauptsächlich darum,  daß nicht zwangsläufig  auf
  77.         den Komfort der Ausgabeformatierung mittels WRITE() verzichtet
  78.         werden, andererseits dafür jedoch nicht unbedingt auf TPs  CRT
  79.         zugegriffen werden sollte.
  80.  
  81.         Das Include File FCONDRV.INC  enthält hauptsächlich einen CON:
  82.         Treiber für WRITE/WRITELN(), der direkt auf den  Videospeicher
  83.         des  Textmodus  zugreift.  Es  hat  sich   herausgestellt, daß
  84.         einige Prozeduren der Unit CRT in einem  so engen Zusammenhang
  85.         mit diesem Treiber stehen, daß sie  unbedingt mit  in der Unit
  86.         integriert werden mußten.
  87.  
  88.         Ebenso  sollte  nicht  auf  WINDOW  verzichtet werden, welches
  89.         somit auch in FCONDRV enthalten  ist. Es hat sich gezeigt, daß
  90.         es  einige  sehr  leicht  zu    programmierende   aber  extrem
  91.         nützliche Zusätze zu den CRT  Funktionen gibt, die sogleich in
  92.         die Unit miteingefloßen  sind, wenngleich sie  zum  Teil  auch
  93.         noch hinsichtlich einer  flexibleren Handhabung stark  überar-
  94.         beitet werden müßen.
  95.  
  96.         Derzeit  kann   FCONDRV nur direkt ins Videoram schreiben, die
  97.         Routinen  bieten   aber  die  Möglichkeit,  sowohl  eine  BIOS
  98.         Ausgabe  als  auch einige  andere nützliche Dinge zu implemen-
  99.         tieren -  insbesondere  denken  wir da an Terminal Emulationen
  100.         bzw.  einen  extrem schnellen Treiber,  der zwar <cr> und <lf>
  101.         nicht beachtet, dafür aber etwa 4 mal so schnell ausgibt.
  102.  
  103.  
  104.         'Tweaked' TextModi
  105.         --------------------------------------------------------------
  106.  
  107.         Es ist recht unwahrscheinlich,  daß  es vom BIOS  einstellbare
  108.         TextModi gibt, die die Einträge im BIOS RAM nicht  aktualisie-
  109.         ren, weil das Video BIOS  sonst selbst nicht  richtig  auf den
  110.         Bildschirm schreiben könnte. Wer unbedingt 'tweaked'  Textmodi
  111.         benutzen will,  die durch  direkte Registerprogrammierung  der
  112.         VGA  eingestellt  werden,  der  muß  leider   sowohl  auf  die
  113.         Textausgabe mittels BIOS als auch mittels FCONDRV verzichten.
  114.         Eventuell kann FCONDRV auch in  tweaked  Textmodi  ( z.B.  für
  115.         Softscrolling )  verwandt werden,  wenn nach dem Umprogrammie-
  116.         ren  des  CRT   Controllers   die aktuellen Werte im  BIOS RAM
  117.         eingetragen werden und danach REINITFCRT aufgerufen wird.
  118.  
  119.  
  120.         Weitere benötigte Units und die weitere Entwicklung
  121.         --------------------------------------------------------------
  122.  
  123.         Außer der Standard-Unit DOS werden keine weiteren TP-Units be-
  124.         nötigt.  Durch   die   Überarbeitung   einzelner  Routinen  zu
  125.         integriertem (B)ASM wird in zukünftigen Versionen dieser  Unit
  126.         vorraussichtlich auch auf die Benutzung der TP-Unit DOS  voll-
  127.         ständig verzichtet werden können.
  128.  
  129.         Wer hierzu etwas beizutragen hat, wird herzlich gebeten, seine
  130.         Überarbeitungsvorschläge an  den  jeweils  aktuellen  Projekt-
  131.         leiter dieser Unit zu schicken.
  132.  
  133.         Der  größte  Teil  der hier implementierten Routinen wurde für
  134.         den Gebrauch auf Systemen mit VGA-Karte hin abgestimmt. Es ist
  135.         zur Zeit noch ungetestet, welche Routinen für den  Einsatz mit
  136.         weiteren Grafiksystemen noch überarbeitet werden müßten.
  137.         Diesbezügliche Funktionsmeldungen und Überarbeitungsvorschläge
  138.         zu den hier bereitgestellten Routinen, bitte ich ebenfalls per
  139.         NM an die Adresse des jeweils aktuellen Betreuers  dieser Unit
  140.         zu senden.
  141.  
  142.         Einige der hier vorgestellten Routinen müssen noch stark über-
  143.         arbeitet werden. Jedoch ist kaum davon  auszugehen,  daß  dies
  144.         auch  Auswirkungen  auf  die  hier  präsentierte  Syntax  oder
  145.         Namensgebung haben wird.
  146.  
  147.         Insbesondere wurden die auf den langsamen BIOS INT 10h zugrei-
  148.         fenden Bildschirmroutinen in ihrer jetzigen Form hier nur pro-
  149.         visorisch bereitgestellt, um den  Speicherverbrauch  speicher-
  150.         intensiver Anwendungen bereits etwas reduzieren zu können.
  151.         Diese  Routinen  werden  im  weiteren  Verlauf  des  Projektes
  152.         selbstverständlich noch hinsichtlich ihrer Ausgabegeschwindig-
  153.         keit schrittweise optimiert werden, wozu jedoch  teilweise  in
  154.         einer anderen Unit noch Ersatzroutinen  bereitgestellt  werden
  155.         müßen, die zur Zeit noch nicht ausgiebig getestet werden konn-
  156.         ten.
  157.  
  158.         Anpassungen für den 16Bit DOS Protected Mode konnten vom Autor
  159.         selbst noch nicht vorgenommen werden, da  hierzu  eine  andere
  160.         Compilerversion benötigt würde.
  161.         Wer Interesse daran hat, in enger Zusammenarbeit mit  dem  je-
  162.         weiligen Leiter dieser Unit die Anpassungen an den DOS Protec-
  163.         ted Mode vorzunehmen, ist herzlich eingeladen, sich  über   NM
  164.         bei diesem zu melden.
  165.  
  166.  
  167.                                !!! WICHTIG !!!
  168.  
  169.         **************************************************************
  170.         Wenn diese Unit overlay-fähig kompiliert werden sollte (s.auch
  171.         FCONDEF.INC), muß sie zu Beginn eines Programmes durch  Aufruf
  172.         der Prozedur (!!!) InitFCRT (!!!) initialisiert werden.
  173.  
  174.         Standardmäßig ist dies nicht der Fall.
  175.  
  176.         Beim gleichzeitigen Gebrauch der Units CRT,  FCRT  und  FTMODE
  177.         in eigenen Programmen muß in der USES-Anweisung des  Hauptpro-
  178.         grammes unbedingt die folgende Reihenfolge eingehalten werden:
  179.  
  180.         USES
  181.           CRT, FCRT, FTMODE;
  182.  
  183.         Wird diese Reihenfolge nicht eingehalten, ist ein  fehlerloses
  184.         Zusammenspiel der in diesen Units enthaltenen -  teils  inter-
  185.         dependenten - Routinen _NICHT_ gewährleistet.
  186.         **************************************************************
  187.  
  188.  
  189.                     !!! HAFTUNGS- UND GARANTIEAUSSCHLUß !!!
  190.       ┌────────────────────────────────────────────────────────────────┐
  191.       │ Es wird dringend davon abgeraten von in  der  Unit  oder  evtl.│
  192.       │ include files enthaltenen Routinen in eigenen  Programmen  Ge- │
  193.       │ brauch zu machen, wenn diese nicht in der Kurzbeschreibung ge- │
  194.       │ nannt sind.                                                    │
  195.       │                                                                │
  196.       │ Für  die  Richtigkeit  der  Beschreibungen  zu den in der hier │
  197.       │ dokumentierten  Unit  und   evtl.  include  files  enthaltenen │
  198.       │ Routinen wird keine Gewähr gegeben. Fehlerhafte Beschreibungen │
  199.       │ und/oder  ein fehlerhaftes Verhalten  einer Routine, bitte dem │
  200.       │ jeweils  aktuellen  Leiter der  Unit  oder evtl. include files │
  201.       │ melden.                                                        │
  202.       │                                                                │
  203.       │ Die Benutzung der hier vorgestellten Routinen geschieht in je- │
  204.       │ der Hinsicht AUF EIGENE GEFAHR.                                │
  205.       └────────────────────────────────────────────────────────────────┘
  206.  
  207.  
  208.  
  209.      2. Kurzbeschreibung:
  210.      --------------------
  211.  
  212.         Die hier vorgestellten Routinen soweit namens- und  funktions-
  213.         gleich mit denen der TP Standard-Unit CRT werden _nur_ in  der
  214.         Kurzbeschreibung genannt. Nähere Informationen sind dem  Hand-
  215.         buch oder der Online-Hilfe zu entnehmen.
  216.  
  217.         ActiveVideoPage ..... Variable des Typs Byte, die die   zu  be-
  218.                               schreibende Bildschirmseite enthält. Die-
  219.                               se Variable  sollte  nicht  vom  Benutzer
  220.                               verändert werden. Sie  wird  intern  über
  221.                               die Prozedur  SetActiveVideoPage  gesetzt
  222.                               und wurde lediglich zu Abfragezwecken  im
  223.                               Interface-Teil der Unit deklariert.
  224.         BoxCursor ........... setzt einen 'FullSize'-Cursor
  225.         ClearBox ............ löscht einen Bildschirmbereich   in einer
  226.                               angegebenen Farbe
  227.         ClrEoL .............. RTFM, window-bezogen
  228.         ClrScr .............. RTFM, window-bezogen
  229.         ClrScrAbsolute ...... wie ClrScr, jedoch bildschirm-bezogen
  230.         ColourBox ........... ändert das Farbattribut  eines  angegebe-
  231.                               nen Bildschirmbereichs
  232.         ColourColumn ........ ändert das Farbattribut  eines   Spalten-
  233.                               bereichs
  234.         ColourRow ........... ändert  das  Farbattribut   eines Zeilen-
  235.                               bereichs
  236.         CRLF ................ gibt ein 'carriage return'  und ein 'line
  237.                               feed' auf dem Bildschirm aus
  238.         CurrentVideoMode .... Variable des Typs Byte, die den aktuellen
  239.                               VideoModus enthält. ACHTUNG !!!
  240.                               Diese Variable dient  ausschließlich  Ab-
  241.                               fragezwecken. Siehe auch ACTIVEVIDEOPAGE.
  242.         CursorDown .......... bewegt den Cursor um eine angegebene  An-
  243.                               zahl von Zeilen nach unten
  244.         CursorLeft .......... bewegt den Cursor um eine angegebene  An-
  245.                               zahl von Spalten nach links
  246.         CursorRight ......... bewegt den Cursor um eine angegebene  An-
  247.                               zahl von Spalten nach rechts
  248.         CursorShape ......... interne  Typendefinition  eines  Records,
  249.                               der Start- und Endzeile des  Cursors ent-
  250.                               hält; für den Gebrauch  durch  Save- und
  251.                               RestoreCursorShape
  252.         CursorUp ............ bewegt den Cursor um eine angegebene  An-
  253.                               zahl von Zeilen nach oben
  254.         Delay ............... hardware-unabhängige (B)ASM-Variante  der
  255.                               gleichnamigen CRT-Routine
  256.         DisablePageFlipping . unterbindet die  Möglichkeit  auf   Bild-
  257.                               schirmseiten im Hintergrund zu  schreiben
  258.         Display ............. an aktueller  Cursorposition  mit angege-
  259.                               benem  Farbattribut  direkt auf den Bild-
  260.                               schirm schreiben
  261.         DisplayAt ........... an angegebener Bildschirmposition mit an-
  262.                               gegebenem  Farbattribut  direkt  auf  den
  263.                               Bildschirm schreiben;
  264.                               ohne die Cursorposition anzupassen
  265.         DisplayLn ........... an angegebener Bildschirmposition mit an-
  266.                               gegebenem  Farbattribut  direkt  auf  den
  267.                               Bildschirm  schreiben  und  ein  LineFeed
  268.                               vornehmen
  269.         EGAAvail ............ überprüft ob die Modi einer EGA-Karte zur
  270.                               Verfügung stehen
  271.         EGAMode ............. überprüft ob eine VGA-Karte in  den  EGA-
  272.                               Laufmodus versetzt wurde
  273.         EnableLightBackground erlaubt das Benutzen heller  Hintergrund-
  274.                               farben
  275.         EnablePageFlipping .. eröffnet die Möglichkeit auf  Bildschirm-
  276.                               seiten im Hintergrund zu schreiben
  277.         GetCardString ....... ermittelt einen String, der Informationen
  278.                               über das installierte  Grafiksystem  ent-
  279.                               hält
  280.         GetVideoDisplayCode . liefert Informationen  über  das  instal-
  281.                               lierte Grafiksystem zurück
  282.         GetVideoMode ........ ermittelt den jeweiligen VideoModus
  283.         GetX ................ ermittelt die X-Koordinate der  aktuellen
  284.                               Cursorposition, 1-based
  285.         GetY ................ ermittelt die Y-Koordinate der  aktuellen
  286.                               Cursorposition, 1-based
  287.         GotoXY .............. RTFM, window-bezogen
  288.         GotoXYAbsolute ...... wie GotoXY, jedoch bildschirm-bezogen
  289.         HideCursor .......... läßt den Cursor verschwinden
  290.         InitFCRT ............ initialisiert die Schlüßelwerte  der Unit
  291.                               und muß zu Beginn eines Programmes aufge-
  292.                               rufen werden, wenn FCRT overlayfähig kom-
  293.                               piliert wurde. Ein  Aufruf  von  InitFCRT
  294.                               ist nicht nötig,  wenn  die  Standardein-
  295.                               stellungen in FCONDEF.INC nicht verändert
  296.                               wurden
  297.         LastVideoMode ....... enthält den zuletzt gesetzten VideoModus.
  298.                               ACHTUNG! Diese Variable dient ausschließ-
  299.                               lich Abfragezwecken.  Siehe  auch ACTIVE-
  300.                               VIDEOPAGE.
  301.         MaxX ................ enthält die Anzahl der maximalen Spalten.
  302.                               ACHTUNG! Diese Variable dient ausschließ-
  303.                               lich Abfragezwecken.  Siehe  auch ACTIVE-
  304.                               VIDEOPAGE.
  305.         MaxY ................ enthält die Anzahl der maximalen Zeilen.
  306.                               ACHTUNG! Diese Variable dient ausschließ-
  307.                               lich Abfragezwecken.  Siehe  auch ACTIVE-
  308.                               VIDEOPAGE.
  309.         MinCursor ........... setzt einen 'underscore'-Cursor
  310.         NormCursor .......... setzt einen normalen Cursor
  311.         PageFlipping ........ Variable  des   Typs   Boolean  die  über
  312.                               Enable- bzw. PageFlipping gesteuert wird
  313.         PutCharAttr ......... gibt  in   angegebener   Häufigkeit   ein
  314.                               Zeichen in einem bestimmten  Farbattribut
  315.                               am Bildschirm aus, ohne die Bildschirmpo-
  316.                               sition des Cursors zu verändern
  317.         ReInitFCRT .......... reinitialisiert  die   Schlüßelwerte  der
  318.                               Unit
  319.         RestoreCursorShape .. stellt  die zuvor mit SaveCursorShape ge-
  320.                               sicherte Form des Cursors wieder her
  321.         SaveCursorShape ..... speichert die Form des Cursors
  322.         ScrOff .............. schaltet den Bildschirm aus
  323.         ScrOn ............... schaltet den Bildschirm an
  324.         SetBlinkBit ......... setzt das BlinkBit des Farbattributs
  325.         SetVideoMode ........ setzt den VideoModus
  326.         SetCursorShape ...... setzt eine anzugebende CusorForm
  327.         SetScreenPos ........ setzt  die  absolute  Bildschirmposition,
  328.                               nicht Window-bezogen
  329.         SetVisualVideoPage .. setzt eine neue  Bildschirmseite  in  den
  330.                               Vordergrund
  331.         StartVideoMode ...... Variable  des  Typs  Byte, die den Video-
  332.                               Modus bei Programmstart enthält
  333.         StartVideoPage ...... Variable des Typs Byte die die  bei  Pro-
  334.                               grammstart   angezeigte   Bildschirmseite
  335.                               enthält
  336.         TextAttr ............ RTFM
  337.         VGAAvail ............ ermittelt ob die Laufmodi  der  VGA-Karte
  338.                               zur Verfügung stehen, funktionsgleich  zu
  339.                               VGACard
  340.         VGACard ............. ermittelt  ob  eine  VGA-Karte  im System
  341.                               vorhanden ist, auch wenn  diese  sich  im
  342.                               EGA-Laufmodus befindet
  343.         VGAMode ............. ermittelt ob sich eine VGA-Karte im  VGA-
  344.                               Laufmodus befindet
  345.         VideoPageSize ....... Variable des Typs Word, die  die Größe
  346.                               einer Seite des VideoBuffers enthält.
  347.                               ACHTUNG! Diese Variable dient ausschließ-
  348.                               lich Abfragezwecken.  Siehe  auch ACTIVE-
  349.                               VIDEOPAGE.
  350.         VideoRAM ............ Variable des Typs Word,  die  die  Start-
  351.                               adresse  des  Videospeichers im TextModus
  352.                               enthält
  353.         VisualVideoPage ..... Variable des Typs Byte,  die die  jeweils
  354.                               angezeigte Bildschirmseite enthält.
  355.                               ACHTUNG! Diese Variable dient ausschließ-
  356.                               lich Abfragezwecken.  Siehe  auch ACTIVE-
  357.                               VIDEOPAGE.
  358.         WhereX .............. RTFM, window-bezogen
  359.         WhereXAbsolute ...... wie WhereX, jedoch bildschirm-bezogen
  360.         WhereY .............. RTFM, window-bezogen
  361.         WhereYAbsolute ...... wie WhereY, jedoch bildschirm-bezogen
  362.         WindMax ............. RTFM, window-bezogen
  363.         WindMin ............. RTFM, window-bezogen
  364.         Window .............. RTFM, zZt ist ein einmal definiertes Win-
  365.                               dow  noch   auf   allen  Bildschirmseiten
  366.                               aktiv, wir hoffen jedoch dies im weiteren
  367.                               Verlauf  der Entwicklung noch korrigieren
  368.                               zu können
  369.  
  370.  
  371.  
  372.  
  373.      3. Detaillierte Beschreibung:
  374.      -----------------------------
  375.  
  376.         ===============================================================
  377.         ActiveVideoPage
  378.         ---------------------------------------------------------------
  379.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  380.  
  381.         ERSTDATUM    ...  ??.??.199?    LETZTE ÄNDERUNG ...  ??.??.1994
  382.         ---------------------------------------------------------------
  383.  
  384.         BESCHREIBUNG ...  Variable  des Typs Byte, die die zu beschrei-
  385.                           bende Bildschirmseite enthält
  386.  
  387.         DEKLARATION  ...  VAR ActiveVideoPage : Byte
  388.  
  389.         ACHTUNG !!! Die Variable ActiveVideoPage sollte nicht durch den
  390.         Benutzer der Unit manipuliert werden. Sie dient  ausschließlich
  391.         Abfragezwecken   und    wird    intern    über    die  Prozedur
  392.         SetActiveVideoPage der Unit verwaltet.
  393.         Ein Setzen dieser Variablen 'von Hand' kann zu unvorhersehbaren
  394.         Ergebnissen führen.
  395.  
  396.  
  397.         ===============================================================
  398.         BoxCursor
  399.         ---------------------------------------------------------------
  400.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  401.  
  402.         ERSTDATUM    ...  18.12.1993    LETZTE ÄNDERUNG ...  27.12.1993
  403.         ---------------------------------------------------------------
  404.  
  405.         BESCHREIBUNG ...  setzt die Form eines Block-Cursors
  406.  
  407.         USES         ...  SetCursorShape
  408.  
  409.         DEKLARATION  ...  procedure BoxCursor;
  410.  
  411.  
  412.         ===============================================================
  413.         ClearBox
  414.         ---------------------------------------------------------------
  415.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  416.  
  417.         ERSTDATUM    ...  22.12.1993    LETZTE ÄNDERUNG ...  04.01.1994
  418.         ---------------------------------------------------------------
  419.  
  420.         BESCHREIBUNG ...  löscht einen angegebenen  Bereich  des  Bild-
  421.                           schirms in einem bestimmten Farbattribut
  422.  
  423.         USES         ...  PutCharAttr, SetScreenPos
  424.  
  425.         DEKLARATION  ...  procedure ClearBox (x,y,xx,yy,at:byte);
  426.  
  427.         PARAMETER    ...  x  - Startspalte des zu löschenden Bereichs
  428.                           y  - Startzeile des zu löschenden Bereichs
  429.                           xx - Endspalte des zu löschenden Bereichs
  430.                           yy - Endzeile des zu löschenden Bereichs
  431.                           at - das zu verwendende Farbattribut
  432.  
  433.  
  434.         ===============================================================
  435.         ColourBox
  436.         ---------------------------------------------------------------
  437.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  438.  
  439.         ERSTDATUM    ...  22.12.1993    LETZTE ÄNDERUNG ...  04.01.1994
  440.         ---------------------------------------------------------------
  441.  
  442.         BESCHREIBUNG ...  ändert  das  Farbattribut  eines  Bildschirm-
  443.                           bereichs
  444.  
  445.         USES         ...  ActiveVideoPage, PutCharAttr, SetScreenPos
  446.  
  447.         DEKLARATION  ...  procedure ColourBox (x,y,xx,yy,at:byte);
  448.  
  449.         PARAMETER    ...  x  - Startspalte des Bereichs
  450.                           y  - Startzeile des Bereichs
  451.                           xx - Endspalte des Bereichs
  452.                           yy - Endzeile des Bereichs
  453.                           at - das neu zu setzende Farbattribut
  454.  
  455.  
  456.         ===============================================================
  457.         ColourColumn
  458.         ---------------------------------------------------------------
  459.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  460.  
  461.         ERSTDATUM    ...  22.12.1993    LETZTE ÄNDERUNG ...  21.06.1994
  462.         ---------------------------------------------------------------
  463.  
  464.         BESCHREIBUNG ...  ändert  das  Farbattribut  einer  Bildschirm-
  465.                           spalte
  466.  
  467.         USES         ...  ActiveVideoPage, PutCharAttr, SetScreenPos
  468.  
  469.         DEKLARATION  ...  procedure ColourColumn (x,y,yy,at:byte);
  470.  
  471.         PARAMETER    ...  x  - Spalte
  472.                           y  - Startzeile
  473.                           yy - Endzeile
  474.                           at - das neu zu setzende Farbattribut
  475.  
  476.  
  477.         ===============================================================
  478.         ColourRow
  479.         ---------------------------------------------------------------
  480.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  481.  
  482.         ERSTDATUM    ...  22.12.1993    LETZTE ÄNDERUNG ...  23.06.1994
  483.         ---------------------------------------------------------------
  484.  
  485.         BESCHREIBUNG ...  ändert  das  Farbattribut  einer  Bildschirm-
  486.                           zeile
  487.  
  488.         USES         ...  ActiveVideoPage, PutCharAttr, SetScreenPos
  489.  
  490.         DEKLARATION  ...  procedure ColourRow (x,y,xx,at:byte);
  491.  
  492.         PARAMETER    ...  x  - Spalte
  493.                           y  - Startzeile
  494.                           xx - Endspalte
  495.                           at - das neu zu setzende Farbattribut
  496.  
  497. --- GEcho 1.00
  498.  * Origin: - GPS Pascal related unit system support group - (2:2450/540.55)
  499. SEEN-BY: 2450/540
  500. .PATH: 2450/540
  501.  
  502.  
  503. ─ Fido UNITs Projekt ───────────────────────────────────────────────────prussg─
  504. Msg  :   85     [1-86]                     Rcv                                  
  505. From : Orazio Czerwenka                    12-Jul-94  11:03:07  2:2450/540.55
  506. To   : Paul Schubert                                            244/1181
  507. Subj : 2/3 D: 1.11ß -FCRT
  508. ────────────────────────────────────────────────────────────────────PRUSSG.GER─
  509. .MSGID: 2:2450/540.55@Fidonet 6089e9df
  510. .PID: FM 2.02
  511.         ===============================================================
  512.         CRLF
  513.         ---------------------------------------------------------------
  514.         ERSTAUTOR    ...  Max Maischein, 2:244/1106.17 @ FidoNet
  515.  
  516.         ERSTDATUM    ...  ??.??.19??    LETZTE ÄNDERUNG ...  12.06.1994
  517.  
  518.         MODIFIKATION ...  Orazio Czerwenka
  519.         ---------------------------------------------------------------
  520.  
  521.         BESCHREIBUNG ...  carriage return und line feed  am  Bildschirm
  522.                           ausgeben
  523.  
  524.         DEKLARATION  ...  procedure CRLF; assembler;
  525.  
  526.  
  527.         ===============================================================
  528.         CurrentVideoMode
  529.         ---------------------------------------------------------------
  530.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  531.  
  532.         ERSTDATUM    ...  28.06.1994    LETZTE ÄNDERUNG ...  28.06.1994
  533.         ---------------------------------------------------------------
  534.  
  535.         BESCHREIBUNG ...  Variable  vom  Typ  Byte,   die  den  jeweils
  536.                           aktuellen VideoModus enthält
  537.  
  538.         DEKLARATION  ...  VAR CurrentVideoMode: Byte absolute $40:$49;
  539.  
  540.         ACHTUNG !!!    Die Variable CurrentVideoMode sollte nicht durch
  541.         den Benutzer der Unit manipuliert werden. Sie dient ausschließ-
  542.         lich Abfragezwecken.
  543.         Ein Setzen dieser Variablen 'von Hand' kann zu unvorhersehbaren
  544.         Ergebnissen führen.
  545.  
  546.  
  547.  
  548.         ===============================================================
  549.         CursorDown
  550.         ---------------------------------------------------------------
  551.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  552.  
  553.         ERSTDATUM    ...  27.12.1993    LETZTE ÄNDERUNG ...  27.12.1993
  554.         ---------------------------------------------------------------
  555.  
  556.         BESCHREIBUNG ...  bewegt den Cursor um m Zeilen nach unten
  557.  
  558.         USES         ...  ActiveVideoPage
  559.  
  560.         DEKLARATION  ...  procedure CursorDown(m:byte);
  561.  
  562.         PARAMETER    ...  m  - Anzahl der Zeilen
  563.  
  564.  
  565.         ===============================================================
  566.         CursorLeft
  567.         ---------------------------------------------------------------
  568.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  569.  
  570.         ERSTDATUM    ...  27.12.1993    LETZTE ÄNDERUNG ...  27.12.1993
  571.         ---------------------------------------------------------------
  572.  
  573.         BESCHREIBUNG ...  bewegt den Cursor um m Spalten nach links
  574.  
  575.         USES         ...  ActiveVideoPage
  576.  
  577.         DEKLARATION  ...  procedure CursorLeft(m:byte);
  578.  
  579.         PARAMETER    ...  m  - Anzahl der Spalten
  580.  
  581.  
  582.         ===============================================================
  583.         CursorRight
  584.         ---------------------------------------------------------------
  585.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  586.  
  587.         ERSTDATUM    ...  27.12.1993    LETZTE ÄNDERUNG ...  27.12.1993
  588.         ---------------------------------------------------------------
  589.  
  590.         BESCHREIBUNG ...  bewegt den Cursor um m Spalten nach rechts
  591.  
  592.         USES         ...  ActiveVideoPage
  593.  
  594.         DEKLARATION  ...  procedure CursorRight(m:byte);
  595.  
  596.         PARAMETER    ...  m  - Anzahl der Spalten
  597.  
  598.  
  599.         ===============================================================
  600.         CursorShape
  601.         ---------------------------------------------------------------
  602.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  603.  
  604.         ERSTDATUM    ...  19.12.1993    LETZTE ÄNDERUNG ...  19.12.1993
  605.         ---------------------------------------------------------------
  606.  
  607.         BESCHREIBUNG ...  interne  Typendeklaration  zu  speichern  und
  608.                           wiederherstellen der Cursorform
  609.  
  610.         DEKLARATION  ...  TYPE CursorShape = RECORD
  611.                                                top, bottom : byte;
  612.                                              END;
  613.  
  614.         PARAMETER    ...  top    - Startzeile des Cursors
  615.                           bottom - Endzeile des Cursors
  616.  
  617.  
  618.         ===============================================================
  619.         CursorUp
  620.         ---------------------------------------------------------------
  621.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  622.  
  623.         ERSTDATUM    ...  27.12.1993    LETZTE ÄNDERUNG ...  27.12.1993
  624.         ---------------------------------------------------------------
  625.  
  626.         BESCHREIBUNG ...  bewegt den Cursor um m Zeilen nach oben
  627.  
  628.         USES         ...  ActiveVideoPage
  629.  
  630.         DEKLARATION  ...  procedure CursorUp(m:byte);
  631.  
  632.         PARAMETER    ...  m  - Anzahl der Zeilen
  633.  
  634.  
  635.         ===============================================================
  636.         Delay
  637.         ---------------------------------------------------------------
  638.         ERSTAUTOR    ...  SWAG support team
  639.  
  640.         ERSTDATUM    ...  ??.??.19??    LETZTE ÄNDERUNG ...  ??.??.19??
  641.         ---------------------------------------------------------------
  642.  
  643.         BESCHREIBUNG ...  (B)ASM-Ersatz  für   die   gleichnamige  CRT-
  644.                           Routine
  645.  
  646.         DEKLARATION  ...  procedure Delay(ms : Word); Assembler;
  647.  
  648.         PARAMETER    ...  ms  - Delay-Zeit in ms
  649.  
  650.  
  651.         ===============================================================
  652.         DisablePageFlipping
  653.         ---------------------------------------------------------------
  654.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  655.  
  656.         ERSTDATUM    ...  26.05.1994    LETZTE ÄNDERUNG ...  23.06.1994
  657.         ---------------------------------------------------------------
  658.  
  659.         BESCHREIBUNG ...  unterbindet  die  Möglichkeit auf Bildschirm-
  660.                           seiten im Hintergrund zu schreiben
  661.  
  662.         USES         ...  MaxX, OptDisplayAt, PageFlipping
  663.  
  664.         DEKLARATION  ...  procedure DisablePageFlipping;
  665.  
  666.  
  667.         ===============================================================
  668.         DisplayAt
  669.         ---------------------------------------------------------------
  670.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  671.  
  672.         ERSTDATUM    ...  22.12.1993    LETZTE ÄNDERUNG ...  04.07.1994
  673.         ---------------------------------------------------------------
  674.  
  675.         BESCHREIBUNG ...  an aktueller  Cursorposition  mit angegebenem
  676.                           Farbattribut   direkt   auf   den  Bildschirm
  677.                           schreiben und die Cursorposition anpassen
  678.  
  679.         USES         ...  CursorRight, GetX, MaxX, PutCharAttr,
  680.                           SetScreenPos
  681.  
  682.  
  683.         ===============================================================
  684.         Display
  685.         ---------------------------------------------------------------
  686.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  687.  
  688.         ERSTDATUM    ...  27.12.1993    LETZTE ÄNDERUNG ...  27.06.1994
  689.         ---------------------------------------------------------------
  690.  
  691.         BESCHREIBUNG ...  an aktueller  Cursorposition  mit angegebenem
  692.                           Farbattribut   direkt   auf   den  Bildschirm
  693.                           schreiben und die Cursorposition anpassen
  694.  
  695.         USES         ...  CursorRight, GetX, MaxX, PutCharAttr,
  696.                           SetScreenPos
  697.  
  698.  
  699.         DEKLARATION  ...  procedure Display(at:byte;s:string);
  700.  
  701.         PARAMETER    ...  x  - Startspalte
  702.                           y  - Zeile
  703.                           at - Farbattribut
  704.                           s  - auszugebender String
  705.  
  706.  
  707.         ===============================================================
  708.         DisplayLn
  709.         ---------------------------------------------------------------
  710.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  711.  
  712.         ERSTDATUM    ...  12.06.1994    LETZTE ÄNDERUNG ...  12.06.1994
  713.         ---------------------------------------------------------------
  714.  
  715.         BESCHREIBUNG ...  an aktueller   Cursorposition mit angegebenem
  716.                           Farbattribut   direkt   auf   den  Bildschirm
  717.                           schreiben und an den Anfang der nächsten Zei-
  718.                           le springen
  719.  
  720.         USES         ...  CRLF, Display
  721.  
  722.         DEKLARATION  ...  procedure DisplayLn(at:byte;s:string);
  723.  
  724.         PARAMETER    ...  at - Farbattribut
  725.                           s  - auszugebender String
  726.  
  727.  
  728.         ===============================================================
  729.         EGAAvail
  730.         ---------------------------------------------------------------
  731.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  732.  
  733.         ERSTDATUM    ...  26.12.1993    LETZTE ÄNDERUNG ...  27.16.1994
  734.  
  735.         MODIFIKATION ...  Max Maischein
  736.         ---------------------------------------------------------------
  737.  
  738.         BESCHREIBUNG ...  überprüft ob die  Modi  einer  EGA-Karte  zur
  739.                           Verfügung stehen
  740.  
  741.         DEKLARATION  ...  function EGAAvail: boolean;
  742.  
  743.         ERGEBNIS     ...  TRUE  - EGAModi stehen zur Verfügung (EGA/VGA)
  744.                           FALSE - EGAModi stehen nicht zur Verfügung
  745.  
  746.  
  747.         ===============================================================
  748.         EGAMode
  749.         ---------------------------------------------------------------
  750.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  751.  
  752.         ERSTDATUM    ...  26.12.1993    LETZTE ÄNDERUNG ...  26.12.1993
  753.         ---------------------------------------------------------------
  754.  
  755.         BESCHREIBUNG ...  überprüft ob sich eine VGA-Karte im EGA-Lauf-
  756.                           modus befindet
  757.  
  758.         DEKLARATION  ...  function EGAMode: boolean;
  759.  
  760.         ERGEBNIS     ...  TRUE  - VGA-Karte im EGAModus
  761.                           FALSE - keine VGA-Karte oder nicht  im  EGA-
  762.                                   modus
  763.  
  764.  
  765.  
  766.         ===============================================================
  767.         EnablePageFlipping
  768.         ---------------------------------------------------------------
  769.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  770.  
  771.         ERSTDATUM    ...  26.05.1994    LETZTE ÄNDERUNG ...  23.06.1994
  772.         ---------------------------------------------------------------
  773.  
  774.         BESCHREIBUNG ...  erlaubt  die Möglichkeit auf Bildschirmseiten
  775.                           im Hintergrund zu schreiben
  776.  
  777.         USES         ...  OptDisplayAt, PageFlipping
  778.  
  779.         DEKLARATION  ...  procedure EnablePageFlipping;
  780.  
  781.  
  782.         ===============================================================
  783.         EnableLightBackground
  784.         ---------------------------------------------------------------
  785.         ERSTAUTOR    ...  Christian Proehl(?), 2:2447/103.27 @ FidoNet
  786.  
  787.         ERSTDATUM    ...  ??.??.19??    LETZTE ÄNDERUNG ...  26.06.1994
  788.  
  789.         MODIFIKATION ...  Orazio Czerwenka
  790.         ---------------------------------------------------------------
  791.  
  792.         BESCHREIBUNG ...  erlaubt das Benutzen heller Hintergrundfarben
  793.  
  794.         USES         ...  GetVideoMode
  795.  
  796.         DEKLARATION  ...  procedure EnableLightBackground (b:Boolean);
  797.  
  798.         PARAMETER    ...  b - TRUE  = helle Hintergrundfarbe
  799.                               FALSE = Blinken ist möglich
  800.  
  801.  
  802.         ===============================================================
  803.         GetCardString
  804.         ---------------------------------------------------------------
  805.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  806.  
  807.         ERSTDATUM    ...  25.12.1993    LETZTE ÄNDERUNG ...  02.07.1994
  808.         ---------------------------------------------------------------
  809.  
  810.         BESCHREIBUNG ...  ermittelt  einen  String,  der  Informationen
  811.                           über das installierte Grafiksystem enthält
  812.  
  813.         USES         ...  GetVideoDisplayCode
  814.  
  815.         DEKLARATION  ...  function GetCardStr: NameStr;
  816.  
  817.         Es ist zu beachten, daß der Variablentyp NameStr in  der  Unit
  818.         selbst noch einmal als String[8] definiert wurde. Daher ist es
  819.         nicht notwendig für diese Typendefinition auf die  TP-Unit DOS
  820.         zurückzugreifen.
  821.         Der zurückgelieferte String enthält jeweils durch  Underscores
  822.         ('_') voneinander getrennt folgende Informationen:
  823.  
  824.              Grafikkarte_Farbe/SW_Analog/Digital-Monitor
  825.  
  826.         Wurde  keine  Grafikkarte  korrekt  identifiziert  lautet  der
  827.         String 'none' (keine Grafikkarte installiert),  gleiches  gilt
  828.         für unbekannte Karten und nicht PS/2-kompatible Maschinen.
  829.  
  830.  
  831.         ===============================================================
  832.         GetVideoDisplayCode
  833.         ---------------------------------------------------------------
  834.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  835.  
  836.         ERSTDATUM    ...  29.06.1994    LETZTE ÄNDERUNG ...  02.07.1994
  837.         ---------------------------------------------------------------
  838.  
  839.         BESCHREIBUNG ...  liefert eine Variable des Typs  Byte  zurück,
  840.                           die Informationen über das installierte  Gra-
  841.                           fiksystem (Karte/Monitor) enthält
  842.  
  843.         DEKLARATION  ...  function GetVideoDisplayCode: Byte;
  844.  
  845.         ERGEBNIS     ...  eine Variable des Typs Byte, die  Informatio-
  846.                           nen über das installierte Grafiksystems eines
  847.                           Systems enthält, sofern dieses kompatibel  zu
  848.                           IBM PS/2 ist
  849.  
  850.  
  851.         ===============================================================
  852.         GetVideoMode
  853.         ---------------------------------------------------------------
  854.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  855.  
  856.         ERSTDATUM    ...  05.01.1994    LETZTE ÄNDERUNG ...  20.05.1994
  857.         ---------------------------------------------------------------
  858.  
  859.         BESCHREIBUNG ...  ermittelt den aktuellen Videomodus
  860.  
  861.         DEKLARATION  ...  function GetVideoMode: word;
  862.  
  863.         ERGEBNIS     ...  eine Variable des Typs Word, die den  aktuel-
  864.                           len Videomodus enthält
  865.  
  866.  
  867.         ===============================================================
  868.         GetX
  869.         ---------------------------------------------------------------
  870.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  871.  
  872.         ERSTDATUM    ...  04.01.1994    LETZTE ÄNDERUNG ...  04.01.1994
  873.         ---------------------------------------------------------------
  874.  
  875.         BESCHREIBUNG ...  ermittelt die  Spalte  der   aktuellen  Bild-
  876.                           schirmposition; entspricht WhereX, 1-based
  877.  
  878.         DEKLARATION  ...  function GetX: byte; assembler;
  879.  
  880.         ERGEBNIS     ...  eine Variable des Typs Byte, die die  aktuel-
  881.                           len Spalte der Cursorposition liefert
  882.  
  883.  
  884.         ===============================================================
  885.         GetY
  886.         ---------------------------------------------------------------
  887.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  888.  
  889.         ERSTDATUM    ...  04.01.1994    LETZTE ÄNDERUNG ...  04.01.1994
  890.         ---------------------------------------------------------------
  891.  
  892.         BESCHREIBUNG ...  ermittelt die  Zeile   der   aktuellen  Bild-
  893.                           schirmposition; entspricht WhereY, 1-based
  894.  
  895.         DEKLARATION  ...  function GetX: byte; assembler;
  896.  
  897.         ERGEBNIS     ...  eine Variable des Typs Byte, die die  aktuel-
  898.                           len Zeile der Cursorposition liefert
  899.  
  900.  
  901.         ===============================================================
  902.         HideCursor
  903.         ---------------------------------------------------------------
  904.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  905.  
  906.         ERSTDATUM    ...  15.12.1993    LETZTE ÄNDERUNG ...  22.12.1993
  907.         ---------------------------------------------------------------
  908.  
  909.         BESCHREIBUNG ...  läßt den Cursor verschwinden
  910.  
  911.         USES         ...  SetCursorShape
  912.  
  913.         DEKLARATION  ...  procedure HideCursor;
  914.  
  915. --- GEcho 1.00
  916.  * Origin: - GPS Pascal related unit system support group - (2:2450/540.55)
  917. SEEN-BY: 2450/540
  918. .PATH: 2450/540
  919.  
  920.  
  921. ─ Fido UNITs Projekt ───────────────────────────────────────────────────prussg─
  922. Msg  :   86     [1-86]                     Rcv                                  
  923. From : Orazio Czerwenka                    12-Jul-94  11:04:08  2:2450/540.55
  924. To   : Paul Schubert                                            244/1181
  925. Subj : 3/3 D: 1.11ß - FCRT
  926. ────────────────────────────────────────────────────────────────────PRUSSG.GER─
  927. .MSGID: 2:2450/540.55@Fidonet 6089e9e0
  928. .PID: FM 2.02
  929.         ===============================================================
  930.         InitFCRT
  931.         ---------------------------------------------------------------
  932.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  933.  
  934.         ERSTDATUM    ...  09.12.1993    LETZTE ÄNDERUNG ...  01.07.1994
  935.         ---------------------------------------------------------------
  936.  
  937.         BESCHREIBUNG ...  diese Prozedur muß zu Beginn eines Programmes
  938.                           aufgerufen  werden,  um  die  Schluesselwerte
  939.                           dieser Unit zu initialisieren,  wenn  in  dem
  940.                           'general include file' FCONDEF die Option zur
  941.                           Generierung overlay-fähigen Codes eingestellt
  942.                           wurde. Standardmäßig ist dies nicht der Fall.
  943.  
  944.         DEKLARATION  ...  procedure ReInitFCRT;
  945.  
  946.  
  947.         ===============================================================
  948.         LastVideoMode
  949.         ---------------------------------------------------------------
  950.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  951.  
  952.         ERSTDATUM    ...  01.07.1994    LETZTE ÄNDERUNG ...  01.07.1994
  953.         ---------------------------------------------------------------
  954.  
  955.         BESCHREIBUNG ...  speichert den zuletzt aktiven VideoModus
  956.  
  957.         DEKLARATION  ...  VAR LastVideoMode : Byte;
  958.  
  959.         ACHTUNG !!! Die  Variable  LastVideoMode sollte nicht durch den
  960.         Benutzer der Unit manipuliert werden. Sie dient  ausschließlich
  961.         Abfragezwecken.
  962.         Ein Setzen dieser Variablen 'von Hand' kann zu unvorhersehbaren
  963.         Ergebnissen führen.
  964.  
  965.  
  966.         ===============================================================
  967.         MaxX
  968.         ---------------------------------------------------------------
  969.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  970.  
  971.         ERSTDATUM    ...  05.01.1994    LETZTE ÄNDERUNG ...  13.06.1994
  972.         ---------------------------------------------------------------
  973.  
  974.         BESCHREIBUNG ...  enthält die maximale Anzahl  der  Bildschirm-
  975.                           spalten im TextModus.
  976.  
  977.         DEKLARATION  ...  VAR MaxX : Byte;
  978.  
  979.         ACHTUNG !!!  Die  Variable MaxX sollte nicht durch den Benutzer
  980.         der Unit manipuliert werden. Sie dient  ausschließlich Abfrage-
  981.         zwecken.
  982.         Ein Setzen dieser Variablen 'von Hand' kann zu unvorhersehbaren
  983.         Ergebnissen führen.
  984.  
  985.  
  986.         ===============================================================
  987.         MaxY
  988.         ---------------------------------------------------------------
  989.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  990.  
  991.         ERSTDATUM    ...  05.01.1994    LETZTE ÄNDERUNG ...  13.06.1994
  992.         ---------------------------------------------------------------
  993.  
  994.         BESCHREIBUNG ...  enthält die maximale Anzahl  der  Bildschirm-
  995.                           zeilen im TextModus
  996.  
  997.         DEKLARATION  ...  VAR MaxY : Byte;
  998.  
  999.         ACHTUNG !!!  Die  Variable MaxY sollte nicht durch den Benutzer
  1000.         der Unit manipuliert werden. Sie dient  ausschließlich Abfrage-
  1001.         zwecken.
  1002.         Ein Setzen dieser Variablen 'von Hand' kann zu unvorhersehbaren
  1003.         Ergebnissen führen.
  1004.  
  1005.  
  1006.         ===============================================================
  1007.         MinCursor
  1008.         ---------------------------------------------------------------
  1009.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  1010.  
  1011.         ERSTDATUM    ...  18.12.1993    LETZTE ÄNDERUNG ...  18.12.1993
  1012.         ---------------------------------------------------------------
  1013.  
  1014.         BESCHREIBUNG ...  setzt einen 'underscore'-Cursor
  1015.  
  1016.         USES         ...  SetCursorShape
  1017.  
  1018.         DEKLARATION  ...  procedure MinCursor;
  1019.  
  1020.  
  1021.         ===============================================================
  1022.         NormCursor
  1023.         ---------------------------------------------------------------
  1024.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  1025.  
  1026.         ERSTDATUM    ...  15.12.1993    LETZTE ÄNDERUNG ...  22.12.1993
  1027.         ---------------------------------------------------------------
  1028.  
  1029.         BESCHREIBUNG ...  setzt einen 'normalen' Cursor
  1030.  
  1031.         USES         ...  SetCursorShape
  1032.  
  1033.         DEKLARATION  ...  procedure NormCursor;
  1034.  
  1035.  
  1036.         ===============================================================
  1037.         PageFlipping
  1038.         ---------------------------------------------------------------
  1039.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  1040.  
  1041.         ERSTDATUM    ...  ??.??.1994    LETZTE ÄNDERUNG ...  ??.??.1994
  1042.         ---------------------------------------------------------------
  1043.  
  1044.         BESCHREIBUNG ...  typisierte  Konstante  des  Typs  Boolean zum
  1045.                           internen Gebrauch verschiedener Routinen.
  1046.                           Der Inhalt dieser 'Variablen' sollte  *nicht*
  1047.                           vom Anwender selbst verändert werden,  es sei
  1048.                           denn über den Gebrauch der Prozeduren  Enable-
  1049.                           bzw. DisablePageFlipping.
  1050.  
  1051.         DEKLARATION  ...  Const PageFlipping : Boolean = True;
  1052.  
  1053.         ACHTUNG! Die Variable PageFlipping solte nicht vom Benutzer der
  1054.         Unit 'von Hand' gesetzt werden. Dies kann  zu  unvorhersehbaren
  1055.         Ergebnissen führen.
  1056.         Diese Variable dient ausschließlich  Abfragezwecken.  Sie  wird
  1057.         intern über die Prozeduren EnablePageFlipping bzw. DisablePage-
  1058.         Flipping gesteuert.
  1059.  
  1060.  
  1061.         ===============================================================
  1062.         PutCharAttr
  1063.         ---------------------------------------------------------------
  1064.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  1065.  
  1066.         ERSTDATUM    ...  22.12.1993    LETZTE ÄNDERUNG ...  24.05.1994
  1067.         ---------------------------------------------------------------
  1068.  
  1069.         BESCHREIBUNG ...  gibt ein Zeichen in angegebenener  Häufigkeit
  1070.                           in dem angegebenen Farbattribut am Bildschirm
  1071.                           aus ohne die CursorPosition zu verändern
  1072.  
  1073.         DEKLARATION  ...  procedure PutCharAttr
  1074.                             (cha:char;attr:byte;nr:Word);
  1075.  
  1076.  
  1077.         ===============================================================
  1078.         RestoreCursorShape
  1079.         ---------------------------------------------------------------
  1080.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  1081.  
  1082.         ERSTDATUM    ...  19.12.1993    LETZTE ÄNDERUNG ...  02.07.1994
  1083.         ---------------------------------------------------------------
  1084.  
  1085.         BESCHREIBUNG ...  stellt  die  zuvor   über   SaveCursor  unter
  1086.                           Verwendung des Typs CursorShape  gespeicherte
  1087.                           Form des Cursors wieder her
  1088.  
  1089.         DEKLARATION  ...  procedure RestoreCursor(CurShape:CursorShape);
  1090.  
  1091.  
  1092.         ===============================================================
  1093.         SaveCursorShape
  1094.         ---------------------------------------------------------------
  1095.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  1096.  
  1097.         ERSTDATUM    ...  19.12.1993    LETZTE ÄNDERUNG ...  02.07.1994
  1098.         ---------------------------------------------------------------
  1099.  
  1100.         BESCHREIBUNG ...  speichert die aktuelle Form des  Cursors  in
  1101.                           einer Variablen des Typs CursorShape
  1102.  
  1103.         DEKLARATION  ...  procedure SaveCursor(CurShape:CursorShape);
  1104.  
  1105.  
  1106.         ===============================================================
  1107.         ScrOff
  1108.         ---------------------------------------------------------------
  1109.         ERSTAUTOR    ...  Max Maischein, 2:244/1106.17 @ FidoNet
  1110.  
  1111.         ERSTDATUM    ...  ??.??.19??    LETZTE ÄNDERUNG ...  03.06.1994
  1112.  
  1113.         MODIFIKATION ...  Orazio Czerwenka
  1114.         ---------------------------------------------------------------
  1115.  
  1116.         BESCHREIBUNG ...  schaltet den Bildschirm aus
  1117.  
  1118.         USES         ...  VGACard
  1119.  
  1120.         DEKLARATION  ...  procedure ScrOff;
  1121.  
  1122.  
  1123.  
  1124.         ===============================================================
  1125.         ScrOn
  1126.         ---------------------------------------------------------------
  1127.         ERSTAUTOR    ...  Max Maischein, 2:244/1106.17 @ FidoNet
  1128.  
  1129.         ERSTDATUM    ...  ??.??.19??    LETZTE ÄNDERUNG ...  03.06.1994
  1130.  
  1131.         MODIFIKATION ...  Orazio Czerwenka
  1132.         ---------------------------------------------------------------
  1133.  
  1134.         BESCHREIBUNG ...  schaltet  den mit ScrOff abgeschalteten Bild-
  1135.                           schirm wieder an
  1136.  
  1137.         USES         ...  VGACard
  1138.  
  1139.         DEKLARATION  ...  procedure ScrOn;
  1140.  
  1141.  
  1142.         ===============================================================
  1143.         SetActiveVideoPage
  1144.         ---------------------------------------------------------------
  1145.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  1146.  
  1147.         ERSTDATUM    ...  02.07.1994    LETZTE ÄNDERUNG ...  12.07.1994
  1148.  
  1149.         MODIFIKATION ...  Paul Schubert
  1150.         ---------------------------------------------------------------
  1151.  
  1152.         BESCHREIBUNG ...  legt  die  zu  beschreibende  Bildschirmseite
  1153.                           fest
  1154.  
  1155.         DEKLARATION  ...  procedure SetActiveVideoPage(page:byte);
  1156.  
  1157.         PARAMETER    ...  page - zu beschreibende Bildschirmseite
  1158.  
  1159.  
  1160.         ===============================================================
  1161.         SetBlinkBit
  1162.         ---------------------------------------------------------------
  1163.         ERSTAUTOR    ...  Christian Proehl(?), 2:2447/103.27 @ FidoNet
  1164.  
  1165.         ERSTDATUM    ...  ??.??.19??    LETZTE ÄNDERUNG ...  26.06.1994
  1166.  
  1167.         MODIFIKATION ...  Orazio Czerwenka
  1168.         ---------------------------------------------------------------
  1169.  
  1170.         BESCHREIBUNG ...  setzt das BlinkBit des FarbAttributs
  1171.  
  1172.         USES         ...  GetVideoMode
  1173.  
  1174.         DEKLARATION  ...  procedure SetBlinkBit (b:Boolean);
  1175.  
  1176.         PARAMETER    ...  b - TRUE   = Blinken ist möglich
  1177.                               FALSE  = helle Hintergrundfarbe
  1178.  
  1179.  
  1180.         ===============================================================
  1181.         SetCursorShape
  1182.         ---------------------------------------------------------------
  1183.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  1184.  
  1185.         ERSTDATUM    ...  17.12.1993    LETZTE ÄNDERUNG ...  01.07.1994
  1186.         ---------------------------------------------------------------
  1187.  
  1188.         BESCHREIBUNG ...  setzt die Form des Cursors
  1189.  
  1190.         DEKLARATION  ...  procedure SetCursorShape
  1191.                             (FirstLine , LastLine : byte); assembler;
  1192.  
  1193.         PARAMETER    ...  FirstLine - Startzeile des Cursors
  1194.                           LastLine  - Endzeile des Cursors
  1195.  
  1196.  
  1197.         ===============================================================
  1198.         SetScreenPos
  1199.         ---------------------------------------------------------------
  1200.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  1201.  
  1202.         ERSTDATUM    ...  22.12.1993    LETZTE ÄNDERUNG ...  04.01.1994
  1203.         ---------------------------------------------------------------
  1204.  
  1205.         BESCHREIBUNG ...  setzt die absolute Bildschirmposition,  nicht
  1206.                           Window-bezogen
  1207.  
  1208.         DEKLARATION  ...  procedure SetScreenPos (x,y:byte); assembler;
  1209.  
  1210.         PARAMETER    ...  x - Spalte
  1211.                           y - Zeile
  1212.  
  1213.  
  1214.         ===============================================================
  1215.         SetVideoMode
  1216.         ---------------------------------------------------------------
  1217.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  1218.  
  1219.         ERSTDATUM    ...  26.12.1993    LETZTE ÄNDERUNG ...  12.07.1994
  1220.  
  1221.         MODIFIKATION ...  Max Maischein, Paul Schubert
  1222.         ---------------------------------------------------------------
  1223.  
  1224.         BESCHREIBUNG ...  setzt einen neuen VideoModus, wobei der Bild-
  1225.                           schirminhalt des alten Modus gelöscht wird.
  1226.  
  1227.         DEKLARATION  ...  procedure SetVideoMode(mode: Word);
  1228.  
  1229.         PARAMETER    ...  mode - zu setzender VideoModus
  1230.  
  1231.  
  1232.         ===============================================================
  1233.         SetVisualVideoPage
  1234.         ---------------------------------------------------------------
  1235.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  1236.  
  1237.         ERSTDATUM    ...  22.12.1993    LETZTE ÄNDERUNG ...  02.07.1994
  1238.         ---------------------------------------------------------------
  1239.  
  1240.         BESCHREIBUNG ...  setzt  eine  neue   Bildschirmseite   in  den
  1241.                           Vordergrund
  1242.  
  1243.         DEKLARATION  ...  procedure SetVisualVideoPage(page:byte);
  1244.  
  1245.         PARAMETER    ...  page - zu setzende Bildschirmseite
  1246.  
  1247.  
  1248.         ===============================================================
  1249.         StartVideoMode
  1250.         ---------------------------------------------------------------
  1251.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  1252.  
  1253.         ERSTDATUM    ...  02.07.1994    LETZTE ÄNDERUNG ...  02.07.1994
  1254.         ---------------------------------------------------------------
  1255.  
  1256.         BESCHREIBUNG ...  speichert  den   bei   Programmstart  aktiven
  1257.                           Videomodus
  1258.  
  1259.         DEKLARATION  ...  VAR StartVideoMode : Byte;
  1260.  
  1261.         ACHTUNG !!! Die Variable StartVideoMode  sollte nicht durch den
  1262.         Benutzer der Unit manipuliert werden. Sie dient  ausschließlich
  1263.         Abfragezwecken.
  1264.         Ein Setzen dieser Variablen 'von Hand' kann zu unvorhersehbaren
  1265.         Ergebnissen führen.
  1266.  
  1267.  
  1268.         ===============================================================
  1269.         StartVideoPage
  1270.         ---------------------------------------------------------------
  1271.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  1272.  
  1273.         ERSTDATUM    ...  02.07.1994    LETZTE ÄNDERUNG ...  02.07.1994
  1274.         ---------------------------------------------------------------
  1275.  
  1276.         BESCHREIBUNG ...  speichert die bei Programmstart aktive  Bild-
  1277.                           schirmseite des TextModus
  1278.  
  1279.         DEKLARATION  ...  VAR StartVideoMode : Byte;
  1280.  
  1281.         ACHTUNG !!! Die Variable StartVideoPage  sollte nicht durch den
  1282.         Benutzer der Unit manipuliert werden. Sie dient  ausschließlich
  1283.         Abfragezwecken.
  1284.         Ein Setzen dieser Variablen 'von Hand' kann zu unvorhersehbaren
  1285.         Ergebnissen führen.
  1286.  
  1287.  
  1288.  
  1289.         ===============================================================
  1290.         VGAAvail
  1291.         ---------------------------------------------------------------
  1292.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  1293.  
  1294.         ERSTDATUM    ...  26.12.1993    LETZTE ÄNDERUNG ...  28.06.1994
  1295.  
  1296.         MODIFIKATION ...  Max Maischein
  1297.         ---------------------------------------------------------------
  1298.  
  1299.         BESCHREIBUNG ...  ermittelt ob die Laufmodi einer VGA-Karte zur
  1300.                           Verfügung stehen, funktionsgleich zu VGACard
  1301.  
  1302.         DEKLARATION  ...  Function VGAAvail : Boolean; assembler;
  1303.  
  1304.         PARAMETER    ...  TRUE  - VGA-Laufmodi sind vorhanden
  1305.                           FALSE - keine VGA-Laufmodi vorhanden
  1306.  
  1307.  
  1308.         ===============================================================
  1309.         VGACard
  1310.         ---------------------------------------------------------------
  1311.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  1312.  
  1313.         ERSTDATUM    ...  25.12.1993    LETZTE ÄNDERUNG ...  25.12.1993
  1314.         ---------------------------------------------------------------
  1315.  
  1316.         BESCHREIBUNG ...  ermittelt ob die Laufmodi einer VGA-Karte zur
  1317.                           Verfügung  stehen,  auch  wenn  sich die VGA-
  1318.                           Karte gerade im EGA-Laufmodus befindet, funk-
  1319.                           tionsgleich zu VGAAvail.
  1320.  
  1321.         DEKLARATION  ...  Function VGACard : Boolean;
  1322.  
  1323.         PARAMETER    ...  TRUE  - VGA-Laufmodi sind vorhanden
  1324.                           FALSE - keine VGA-Laufmodi vorhanden
  1325.  
  1326.  
  1327.         ===============================================================
  1328.         VGAMode
  1329.         ---------------------------------------------------------------
  1330.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  1331.  
  1332.         ERSTDATUM    ...  26.12.1993    LETZTE ÄNDERUNG ...  26.12.1993
  1333.         ---------------------------------------------------------------
  1334.  
  1335.         BESCHREIBUNG ...  ermittelt ob sich eine VGA-Karte im VGA-Lauf-
  1336.                           Modus befindet
  1337.  
  1338.         DEKLARATION  ...  Function VGAMode : Boolean;
  1339.  
  1340.         PARAMETER    ...  TRUE  - VGA-Karte im VGA-Modus
  1341.                           FALSE - keine VGA-Karte im VGA-Modus
  1342.  
  1343.  
  1344.         ===============================================================
  1345.         VideoPageSize
  1346.         ---------------------------------------------------------------
  1347.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  1348.  
  1349.         ERSTDATUM    ...  26.06.1994    LETZTE ÄNDERUNG ...  26.06.1994
  1350.         ---------------------------------------------------------------
  1351.  
  1352.         BESCHREIBUNG ...  Variable des Typs Word, die die  Größe  einer
  1353.                           Bildschirmseite enthält
  1354.  
  1355.         DEKLARATION  ...  VAR VideoPageSize: Word absolute $40:$4C;
  1356.  
  1357.         ACHTUNG !!! Die Variable VideoPageSize  sollte nicht durch den
  1358.         Benutzer der Unit manipuliert werden. Sie dient  ausschließlich
  1359.         Abfragezwecken.
  1360.         Ein Setzen dieser Variablen 'von Hand' kann zu unvorhersehbaren
  1361.         Ergebnissen führen.
  1362.  
  1363.  
  1364.         ===============================================================
  1365.         VideoRAM
  1366.         ---------------------------------------------------------------
  1367.         ERSTAUTOR    ...  Orazio Czerwenka, 2:2450/540.55 @ FidoNet
  1368.  
  1369.         ERSTDATUM    ...  ??.??.1993    LETZTE ÄNDERUNG ...  28.06.1994
  1370.         ---------------------------------------------------------------
  1371.  
  1372.         BESCHREIBUNG ...  Variable des Typs Word, die die  Startadresse
  1373.                           des VideoRAMs enthält
  1374.  
  1375.         DEKLARATION  ...  VAR VideoRAM: Word;
  1376.  
  1377.  
  1378.         ===============================================================
  1379.         VisualVideoPage
  1380.         ---------------------------------------------------------------
  1381.         ERSTAUTOR    ...  Max Maischein, 2:244/1106.17 @ FidoNet
  1382.  
  1383.         ERSTDATUM    ...  03.06.1994    LETZTE ÄNDERUNG ...  02.07.1994
  1384.  
  1385.         MODIFIKATION ...  Orazio Czerwenka
  1386.         ---------------------------------------------------------------
  1387.  
  1388.         BESCHREIBUNG ...  Variable vom Typ Byte, die die aktuelle Bild-
  1389.                           schirmseite enthält
  1390.  
  1391.         DEKLARATION  ...  VAR VisualVideoPage: Byte;
  1392.  
  1393.         ACHTUNG !!! Die Variable VisualVideoPage sollte nicht durch den
  1394.         Benutzer der Unit manipuliert werden. Sie dient  ausschließlich
  1395.         Abfragezwecken   und    wird    intern    über    die  Prozedur
  1396.         SetVisualVideoPage der Unit verwaltet.
  1397.         Ein Setzen dieser Variablen 'von Hand' kann zu unvorhersehbaren
  1398.         Ergebnissen führen.
  1399.  
  1400.  
  1401.  
  1402.  
  1403.      4. Beispiele:
  1404.      -------------
  1405.  
  1406.         ===============================================================
  1407.         ActiveVideoPage
  1408.         ---------------------------------------------------------------
  1409.  
  1410.         Die Beispiele zum sinnvollen Gebrauch der  hier  dokumentierten
  1411.         Routinen werden zu einem späteren Zeitpunkt nachgereicht.
  1412.         Aus Zeitgründen konnte dieser Teil der Dokumentation  vorläufig
  1413.         nicht realisiert werden.
  1414.  
  1415.         Wer Anwendungsbeispiele zu der ein  oder  anderen  hier  vorge-
  1416.         stellten Routine zur Dokumentation beitragen  oder die  weitere
  1417.         Bearbeitung der Dokumentationsdatei dieser  Unit  in  Zusammen-
  1418.         arbeit mit dem jeweiligen Leiter  dieser  Unit übernehmen, bzw.
  1419.         diese  in  andere Sprachen übersetzen möchte, ist herzlich ein-
  1420.         geladen, sich per NM bei diesem zu melden.
  1421.  
  1422.  
  1423.  
  1424.  
  1425.   ==========================================================================
  1426.  
  1427.                  //////////////////////\\\\\\\\\\\\\\\\\\\\\\\
  1428.                    Ende der Dokumentation zur FIDO Unit FCRT
  1429.                  \\\\\\\\\\\\\\\\\\\\\\///////////////////////
  1430.  
  1431. --- GEcho 1.00
  1432.  * Origin: - GPS Pascal related unit system support group - (2:2450/540.55)
  1433. SEEN-BY: 2450/540
  1434. .PATH: 2450/540
  1435.  
  1436.